package com.small.os.minio.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.common.basis.entity.*;
import com.small.os.minio.enums.AqUploadStartEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 上传文件实体
 *
 * @author wangguochao
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class AqUpload extends BaseEntity {


    /**
     * 存储桶名称
     */
    private String bucketName;

    /**
     * 分片数量
     */
    private Integer chunkCount;

    /**
     * 上传文件的md5
     */
    private String fileMd5;

    /**
     * 上传文件/合并文件的格式
     */
    private String suffix;
    /**
     * 前缀
     */
    private String prefix;

    /**
     * 文件名称
     */
    private String fileName;

    /**
     * 文件地址
     */
    private String filePath;

    /**
     * 上传状态 0.已上传部分1.上传完成
     */
    private AqUploadStartEnum uploadStatus;

    /**
     * 分片序号
     */
    private Integer partNumber;

    /**
     * 上传地址
     */
    private String uploadUrl;
    /**
     * 修改时间
     */
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private LocalDateTime lastModified;
    /**
     * 文件大小
     */
    private Integer size;
    /**
     * 是否路径
     */
    private Boolean isDir;
    /**
     * 文件夹颜色
     */
    private String folderColor;

    /**
     * 父级ID
     */
    private String parentId = "TOP";
    /**
     * 父级IDs
     */
    private String parentIds = "TOP";
    /**
     * 分类目录
     */
    @NotNull
    private String categories;
}
